package com.bsj.sipgateway.web.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bsj.power.common.config.global.JsonResult;
import com.bsj.power.common.def.dto.AlarmQueryDTO;
import com.bsj.power.common.def.dto.PageDTO;
import com.bsj.power.common.def.dto.alarmReport.AlarmHandleDTO;
import com.bsj.power.common.def.dto.video.FaultRecordDTO;
import com.bsj.power.common.def.entity.AlarmCombination;
import com.bsj.power.common.def.entity.ai.AiAlarm;
import com.bsj.power.common.def.entity.alarmReport.AlarmReport;
import com.bsj.power.common.def.vo.AlarmCombinationVO;
import com.bsj.power.common.def.vo.web.system.ai.AnnexStatVO;

import java.util.List;

/**
 * @Description
 * @Author zhaoyang
 * @Date 2024/7/2 11:37
 */
public interface IAlarmService {


    List<AlarmReport> faultRecord(FaultRecordDTO faultRecordDTO);

    List<AlarmReport> findFaultAlarmByTime(String beginTime, String endTime);

    IPage<AlarmReport> pageList(PageDTO dto, Integer alarmCode,Integer sceneId, String deviceName,Integer sortType, Integer alarmLevel);

    List<AlarmReport> selectList(PageDTO dto, Integer alarmCode,Integer sceneId, String deviceName,Integer sortType, Integer alarmLevel);

    AnnexStatVO analysisAiAnnex(String startTime, String endTime);

    void alarmComAdd(AlarmCombination alarmCombination);

    void alarmComUpdate(AlarmCombination alarmCombination);

    void alarmComDelete(Integer id);

    JsonResult<List<AlarmCombinationVO>> listAlarmCom(Integer pageNumber, Integer pageSize, String comName);

    IPage<AlarmReport> abnormalOfflineAlarmList(AlarmQueryDTO alarmQueryDTO);

    /**
     * 处理报警
     *
     * @param alarmHandleDTO
     * @return com.bsj.power.common.config.global.JsonResult
     * @author ljx
     * @time 2024/5/23 16:02
     */
    JsonResult handleAlarm(AlarmHandleDTO alarmHandleDTO);
}
